黑客与画家:硅谷创业之父Paul Graham文集 (阮一峰)
与此同时,社会发生了什么变化?我们被迫面对一个更严峻的问题。它与当前的其他许多难题有着共同的起因,那就是“专业化”(specialization)。当工作的专业程度越来越高时,我们就必须接受更长时间的训练。工业化时代来临之前,儿童最晚大约在14岁就要参加工作,如果是在农庄(那个时代大多数人生活在农村),参加工作的时间就更早。如今,只要一个青少年读大学,他就要等到21岁或22岁才开始全职工作。如果再读更高的学位,比如医学博士或哲学博士,可能要拖到30岁才能完成学业。 当今的青少年在生产活动中,根本就是毫无用处的。他们只能在诸如快餐店这样的地方充当廉价劳动力,而快餐店也看出来了,充分利用了这个事实。对于除此以外的几乎所有行业,青少年都会带来净损失。但是,他们又太年轻,不能放任不管,必须有人看着他们。最有效的解决方案,就是把他们集中在一个地方,用几个成年人看守所有小孩。 如果事情只发展到这一步,那么我们就是在描述一个监狱,唯一的区别就是这个监狱不是全日制的。问题在于,许多学校实际上真的停留在这一步。学校的使命据称是教育儿童,但是并没有外在的压力监督他们把这件事做好。所以,大多数学校的教学质量都很糟糕,孩子们根本不把学习当回事,就连认真读书的孩子也是如此。许多时候,我们所有人——包括学生和老师——都只是做做样子,走过场而已。
我对许多美好的字眼都嗤之以鼻,比如“人格”、“正直”,因为成年人贬低了这些词。在他们嘴里,这些词似乎都是同一个意思——“听话”。一些孩子因为具备所谓的“人格”和“正直”,而受到夸奖,可是他们不是呆得像一头大笨牛,就是轻浮得像一个不动脑筋的吹牛者。如果“人格”和“正直”就是这种样子,我宁愿不要它们。
黑客的最高境界是创造规格。
创造优美事物的方式往往不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合起来。这种类型的工作很难用研究性的论文表达。
你把整个程序想清楚的时间点,应该是在编写代码的同时,而不是在编写代码之前,这与作家、画家和建筑师的做法完全一样。 明白这一点对软件设计有重大影响。它意味着,编程语言首要的特性应该是允许动态扩展(malleable)。编程语言是用来帮助思考程序的,而不是用来表达你已经想好的程序。它应该是一支铅笔,而不是一支钢笔。
科学界的每一个人,暗地里都相信数学家比自己聪明。我觉得,数学家自己也相信这一点。最后的结果就是科学家往往会把自己的工作尽可能弄得看上去像数学。对于物理学这样的领域,这可能不会有太大不良影响。但是,你越往自然科学的方向发展,它就越成为一个严重的问题。 一页写满了数学公式的纸真是令人印象深刻啊。(小窍门:用希腊字母表示变量名会令人印象更深刻。)因此,你就受到巨大的诱惑,去解决那些能够用数学公式处理的问题,而不是去解决真正重要的问题。
真正竞争软件设计的战场是新兴领域的市场,这里还没有人建立过防御工事。只要你能做出大胆的设计,由一个人或一批人同时负责设计和实现产品,你就能在这里战胜大公司。
坚持一丝不苟,就能取得优秀的成果。因为那些看不见的细节累加起来,就变得可见了。
我在这里不讨论这样做是否正确。家长想要塑造孩子的心灵,把他们装扮成可爱的小宝宝,这可能是无法避免的。我也可能这样做。但是,就本文而言,这样做会产生一个重要结果,那就是孩子“被迫”在一个精心设计的环境中长大。他的头脑或多或少是纯洁无暇的,一点也不知道那些“不能说的话”,从来没有被真实的社会生活“污染”过。孩子眼里的世界是不真实的,是一个被灌输进他们头脑的假想世界。将来当孩子长大以后接触社会,就会发现小时候以为真实的事情,在现实世界中是荒唐可笑的。
做一个与众不同的异端是有回报的,不仅是在科学领域,在任何有竞争的地方,只有你能看到别人看不到或不敢看的东西,你就有很大的优势。
假设未来的某一天,世界上爆发了一场运动,黄颜色被禁止了。任何东西都不得涂成黄色,违者就是“黄色分子”(yellowist),以破坏社会稳定罪论处。橙色可以容忍,但也很可疑。有一天,你终于觉醒了,意识到错的不是黄颜色,而是这个社会。如果公开这样说,就会被打成“黄色分子”,无数正义人士义愤填膺,对你口诛笔伐。如果你以此作为人生目的,一定要为黄颜色平反昭雪,现在的局面可能正中你下怀。但是,如果你的兴趣主要是别的事情,变成他人眼里的“黄色分子”对你是极大的干扰。与笨蛋辩论,你也会变成笨蛋。
1638年,英国诗人弥尔顿(John Milton)准备第一次访问意大利。曾经担任英国驻威尼斯大使的沃顿爵士(Henry Wootton)告诉弥尔顿要记住一句座右铭“i pensieri stretti & il viso sciolto”。
不管问谁,人们都会说同样的话:“我们心态很开放,愿意接受新思想。”但是实际上,人们脑子里有一根界线,早就认准了什么是对的,什么是错的。
如果你的思想很保守,你自己不会知道,而且你很可能还会持有相反的看法。请记住,所谓“流行”(传统观念也是一种流行),本质上就是自己看不见自己的样子。否则就不会有流行了。
如果自己就是潮水的一部分,怎么能看见潮流的方向呢?你只能永远保持质疑。
小时候,每个人都会鼓励你不断成长,变成一个心智成熟、不再耍小孩子脾气的人。但是,很少有人鼓励你继续成长,变成一个怀疑和抵制社会错误潮流的人。
对于互联网软件,没人规定只能使用某些语言开发,因为所有的硬件都控制在你手里,你想要用什么语言,就能用什么语言。不同的语言适合不同的任务,你应该根据不同场合,挑选最合适的工具。尤其是在竞争者存在的情况下,“可以这样做”就变成了“必须这样做”(详见后文),因为如果你不利用语言的优势,那就会听任对手超过你。
桌面软件迫使用户变成系统管理员,互联网软件则是迫使程序员变成系统管理员:用户的压力变小了,程序员的压力变大了。
如果你是一个黑客,并且梦想自己创业,可能会有两件事情令你望而却步,不敢真正开始采取行动。一件是你不懂得管理企业,另一件是你害怕竞争。可是实际上,这两件事都是没有通电的电篱笆。
如果你觉得由于人们的需求不正确,导致某些工作的报酬过低而且不公平,那么这个世界一定会让你感到非常遗憾,人们就是喜欢看电视真人秀,而不是莎士比亚作品,人们就是喜欢吃玉米热狗,而不是水煮蔬菜,这是不是很不公平呀?要是你觉得不公平的话,那你就同把蓝颜色说成最漂亮的颜色、把方的说成圆的那样蛮不讲理。
当你被迫把东西做得很简单时,你就被迫直接面对真正的问题。当你不能用表面的装饰交差时,你就不得不做好真正的本质部分。
你必须锻炼自己。只有在成为某个领域的专家之后,你才会听到心里有一个细微的声音说:“这样解决太糟糕了!一定有更好的选择。”不要忽视这种声音,要培育它们。优秀作品的秘诀就是:非常严格的品味,再加上实现这种品味的能力。
画家之间甚至流传着一句谚语:“画作永远没有完工的一天,你只是不再画下去而已。”